package com.distributed.common.message;

import net.sf.json.JSONObject;

import com.distributed.common.Constant;

public class ErrorMessage extends BaseMessage {
	public final static String ERROR = new ErrorMessage("error:invaild message").toString();
	
	public ErrorMessage() {
		super();
		setId(Constant.ERROR_MESSAGE);
	}
	
	public ErrorMessage(String msg) {
		super();
		setId(Constant.ERROR_MESSAGE);
		setMsg(msg);
	}
	
	public static String getName() {
		return Constant.ERROR_MESSAGE_NAME;
	}
	
	public void setMsg(String msg) {
		argv.put(Constant.MSG, msg);
	}
	
	public String getMsg() {
		return argv.get(Constant.MSG);
	}
	
	public static ErrorMessage getFromString(String message) {
		JSONObject jsonobject = JSONObject.fromObject(message);
		if (jsonobject == null) {
			return null;
		}
		return getFromJSON(jsonobject);
	}

	public static ErrorMessage getFromJSON(JSONObject jsonobj) {
		BaseMessage baseMessage = new ErrorMessage();
		BaseMessage baseMsg = BaseMessage.getFromJSON(jsonobj, baseMessage);
		if (baseMsg == null || baseMsg.getId() != Constant.ERROR_MESSAGE) {
			return null;
		}
		
		return (ErrorMessage) baseMsg;
	}

	public JSONObject toJSON() {
		return super.toJSON();
	}
	
	public String toString() {
		return toJSON().toString();
	}
}
